module.exports= app =>{
    const mongoose = require("mongoose") 
    const router = require('express').Router({
        mergeParams:true    //保留来自父路由器的req.params值
     })
     var bodyParser = require('body-parser');//引用bodyParser模块
   //  通过一个路径来写入数据，这样数据能通过js的方式写入数据库，不用自己一个个手动添加
    const Category = mongoose.model("Category")
    const FindPerson = mongoose.model("FindPerson")
   
       // 查询数据库字段
       app.get('/money/money',async (req,res)=>{
        const shuzu = ['本月推荐','救助疾病','救灾扶贫']
        let BigArray = []
        for( let i of shuzu){
            const one = await Category.findOne({
                name:i
             })
             const smallArray = await Category.aggregate([
                // 查询'新闻资讯'下面的字分类 过滤一下
                {$match:{_id:one._id}},
                // 类似定义关系型数据库的关联查询，左关联连接left join
                // 定义模型是第三个参数是collection省略了，表示集合名字，省略了默认是模型的复数小写
                // 从哪个集合，主键，外键，起个名称
                { $lookup: { from: 'activities', localField: '_id', foreignField: 'categories', as: 'data' } }
             ])
             BigArray.push(...smallArray)
        }
        //   const result = await Activity.find().populate('categories').lean()
        //  const abc = haha.map(item=>item._id)
          res.send(BigArray)
        })
       //  捐物查询
       app.get('/goods/goods',async (req,res)=>{
         res.send(require('./data/goods.js'))
       })
      //  根据姓名寻人信息
       app.post('/find/find',async (req,res)=>{
         const one = await FindPerson.findOne({
             name:req.body.name
        })
         // console.log(one)
         res.send(one)
       })


       router.post('/',async(req,res)=>{
      //   console.log(req.body)
        const model = await req.Model.create(req.body)
       //  console.log(model);
        res.send(model)
      })
      router.get('/', async(req,res)=>{
         const items = await req.Model.find().limit(30)
         res.send(items)
      })
      //根据id获取
      router.get('/:id',async(req,res)=>{
         const model = await req.Model.findById(req.params.id)
         res.send(model)
      })
      //   更新
      router.put('/:id',async(req,res)=>{
         const model = await req.Model.findByIdAndUpdate(req.params.id,req.body)
         console.log(model);
         res.send(model)
      })
       //   删除
      router.delete('/:id',async(req,res)=>{
         console.log(await req.Model.findByIdAndDelete(req.params.id))
         res.send({
             success:true
         })
      })
  
      //   返回两个函数
      const resourceMiddleware = require('../../middleware/resource')
      
      app.use('/charity/api/rest/:resource',resourceMiddleware(),router)
 
     //  处理接受上传的图片
     const multer = require('multer')
     const upload = multer({dest : __dirname+'/../../uploads'})
     app.post('/charity/api/upload',upload.single('file'),async(req,res)=>{
       const file = req.file
       console.log(req);
       file.url = `http://localhost:3000/uploads/${file.filename}`
       res.send(file)
     })
 
    
 
    // 错误处理函数 配合assert使用
    app.use(async (err,req,res,next)=>{
       console.log(err)
       res.status( err.statusCode|| 500).send({
          message:err.message
       })
    })
  
}
// http://localhost:3000/abc/api/contribution/contribution //后端api可以访问到数据
   // 插入建数据库
//     router.get('/add', async(req, res)=>{
//       const data = { 
//                     id:1,
//                     name:"保护长城加我一个",
//                     personNum:1856953,
//                     moneyNum:2711130,
//                     time:"2019-06-24",
//                     tell:"保护文化遗产",
//                     image:"https://imgcdn.gongyi.qq.com/gongyi/07cbddf29727aa7020c2477edb87a104a5ce719a5e85ae02846d121f0b614ef1f2fdd7a2c30c107b/200",
//                     detailImg:[
//                         {
//                             id:"1",
//                             img:"https://imgcdn.gongyi.qq.com/gongyi/acad67b139420fc142cf0a13fa8d98b7c217532e5d1ae0098fcd65bac027da90f342d8845517e91a6d19bc12a8d2c31e/500"
//                         },
//                         {
//                             id:"2",
//                             "img":"https://imgcdn.gongyi.qq.com/gongyi/acad67b139420fc142cf0a13fa8d98b73699f1709d460ebcede5be60fd86d54aa32f22330044ec6b/500"
//                         },
//                         {
//                             id:"3",
//                             img:"https://imgcdn.gongyi.qq.com/gongyi/acad67b139420fc142cf0a13fa8d98b7b72c05df225ddb3bf14a9af2f345b40b152e4f17410f04e7/500"
//                         }
//                     ],
//                     nr1:" 长城是什么？长城自战国秦汉起，举国之力修建增筑。明代修筑了东起辽宁虎山，西至甘肃嘉峪关的万里长城，同周边的关城、堡驿、烽燧等建筑，一同构建出中国历时最长、规模最大的军事防御体系。这里有刀与火的碰撞，血与汗的挥洒，肝与胆的相照。热血男儿上战场，当为马革裹尸还。这里有一颗雄心，满眼心酸，万里征程，历史与现代的交错从长城这里开始。提到长城，大家眼前闪过的是巍峨雄伟的八达岭长城，一夫当开，万夫莫开的山海关，还是饱览戈壁风光的嘉峪关？据统计，现存的历代长城共计21196.18千米，更多的长城仍处于不为人所关注的状态，面临悄悄消失的威胁。它曾经高大挺拔的身姿已经满目疮痍，坚固的墙体已经坍塌倾頹，毁于战火，要么毁于风雨，要么毁于人为，摧毁了它原本威武雄壮的身姿。现在的长城保护需要我们关注与支持！2016年9月由中国文物保护基金会启动“保护长城，加我一个”长城保护项目，以公募的方式倡导社会力量参与长城保护。2017年筹得第一期款项用于河北喜峰口西段长城第一期工程，目前项目展开施工，进展顺利。此次我们将延续上一个项目的保护理念，对广武长城2段9号敌台进行修缮保护。",
//                     nr2:" 遍览各地长城，广武长城是保存状况较好的一段长城。广武长城楼台密集，形态各异，以2段9号敌台造型独特，为人称道。但是由于自然和人类行为的影响，敌台正面临逐步消失的威胁：民国时期，山西王阎锡山曾驻军广武长城，在9号敌台下挖造炮台，挖空了9号敌台的西南角夯土地基和正下方的山体。雪上加霜的是，上世纪6-70年代，敌台的外包砖和条石被当地村民剥离挪做他用，炮台则被当做防空洞。导致敌台损毁愈加严重。也许明天，也许下一代，它的身影就会消失在我们的土地上。长城作为中国乃至世界上最伟大的建筑奇迹之一，为了让我们的子孙后代能继续感受真实的它，我们需要你们的支持！   "
//       }
//       let activity= new Activity(data)
//       try {
//           await activity.save()
//           res.json({data: true})
//       } catch(err){
//           res.status(500).json({message: err.message})
//       }
//   })